package creationPattern.Singleton;

/**
 * 单例模式-懒汉式
 *      1、支持延时加载，调用get方法时才会创建对象；
 *      2、线程安全，但是因为加了锁，导致并发度降低；
 */
public class Singleton_03 {
    // 1.私有构造方法
    private Singleton_03() {
    }

    // 2.创建私有的静态的全局对象
    private static Singleton_03 instance;

    // 3.给外部提供全局访问点
    // 添加同步锁
    public static synchronized Singleton_03 getInstance() {
        if (null == instance)
            instance = new Singleton_03();
        return instance;
    }
}
